1. Field of the Invention
The present invention relates to memory devices, more particularly, to memory devices designed to provide improved reference current configuration for memory devices.
2. Description of the Related Art
Memory devices incorporating floating gate memory cells, such as flash memories, typically identify data stored in the memory cells using sense amplifiers which compare signal currents received from memory cells with reference currents. In a typical operation, a sense amplifier identifies the data stored in a target cell as logic “1”, when the signal current received from the target cell is larger than the reference current. When the signal current received from the target memory cell is smaller than the reference current, on the other hand, the sense amplifier identifies the data stored in the target cell as logic “0”.
Appropriately adjusting the current level of the reference current is important for reducing the data read error during read operation; if the reference current level is not appropriately configured, it may cause considerable data read errors. Japanese Laid-Open Patent Application No. P2000-132986 discloses a nonvolatile memory device based on floating gate memory cells, which are designed to achieve appropriate reference current level control. The disclosed memory device includes reference memory cells for reference current level adjustment in addition to memory cells for actually storing data. The disclosed memory device performs a trial using the reference memory cells, and adjusts the level of the reference currents on the basis of the trial.
One known approach for achieving appropriate reference current level control is to adjust the reference current level in response to a “trimming code” externally provided to indicate the desired reference current level. Such-designed memory devices include a reference current setting unit configurable with a trimming code, designed to develop the reference currents of a desired level in response to the trimming code. For a memory device incorporated within a computer system, for example, the reference current setting unit is configured with a trimming code during the reset sequence of the computer system, which involves initialization of the computer system after power-on or reset.
One issue is that appropriate reference current levels are different among the individual memory devices, due to the inevitable fabrication variation and the power supply fluctuation. In order to deal with this issue, an appropriate reference current level is usually determined at the factory for each memory device through the pre-shipment test, and the corresponding trimming codes is configured to the memory device. The trimming code is typically stored in a specific memory area within the floating gate memory array. The stored trimming code is obtained from the floating gate memory array and configured into the reference current setting unit, when the memory device is initialized, typically during the reset sequence implemented in the computer system.
Obtaining the stored trimming code from the floating gate memory array, however, requires the reference current setting unit to be configured with an appropriately determined reference current level before the access is implemented to the memory area where the trimming code is stored; obtaining the stored trimming code from the floating gate memory array itself requires appropriate reference current level setting. One approach for obtaining the stored trimming code from the memory array is to externally provide a default trimming code for the reference current setting unit; the reference current setting unit uses the default trimming code for obtaining the stored trimming code from the memory array.
Specifically, as shown in a flowchart of FIG. 1, a default trimming code is obtained from an external ROM at Step S101. The default trimming code is configured to the reference current setting unit. The reference current setting unit then provides default reference currents for the sense amplifiers, the level of which are determined on the basis of the default trimming code at Step S102. The sense amplifiers identify the trimming code stored in the specific memory area of the floating gate memory array at Step S103, and the trimming code obtained from the floating gate memory array is configured into the reference current setting unit in place of the default trimming code. The reference current setting unit provides the reference currents for the sense amplifiers in response to the trimming code obtained from the memory array at Step S104. Subsequently, the sense amplifiers identify data based on the reference currents of the current level thus configured.
FIG. 2 depicts an exemplary association of the trimming code with the reference currents to be generated in a conventional memory device. In the example shown in FIG. 2, the trimming code is a three-bit code. The default trimming code is “000”, and the reference currents are increased as the value of the trimming code is increased, and vice versa. It should be noted that the negative value of the trimming code is represented in the two's complement.
The levels of the reference currents are required to be in a certain range for achieving successful data read from the memory array. The allowable current level range is dependent on the operation mode of the computer. The allowable current level range is relatively large during the reset sequence of the computer, because the computer operates at a relatively low frequency, typically around 2 MHz; the allowed current level range for the reset sequence is denoted by the symbol “S1”. During normal operations, on the other hand, the allowed current level range is relatively small, because the computer operates at a relatively high frequency of 66 MHz or more.
The inevitable variation, including the fabrication variation and the power supply voltage variation, causes variation in the association of the trimming code with the actual level of the reference currents among memory devices. In FIG. 2, the reference current characteristics curve of a memory device incorporated in an “A” computer is denoted by the symbol “IA”. Correspondingly, the reference current characteristics curves of memory devices incorporated in “B” and “C” computer are denoted by the symbol “IB” and “IC”, respectively. The memory device within the “A” computer exhibits a relatively reduced reference current level, while the memory device within the “C” computer exhibits a relatively increased reference current level.
One problem is that a wrong trimming code may be obtained from the memory array due to the variation in the association of the trimming code and the actual reference current level. The wrong trimming code may cause data read errors in the memory device.
For the “B” computer, for example, correct data are obtained from the memory array within the memory device using the trimming code successfully obtained from the memory array. In detail, the appropriate trimming code is successfully obtained from the memory array using the default trimming code of “000”, and the data stored in the memory array are also successfully obtained using the trimming code successfully obtained from the memory array.
For the “A” and “C” computers, on the other hand, wrong trimming codes are obtained from the memory arrays, and this causes unsuccessful data read from the memory array.
In detail, the memory devices within the “A” and “C” computers are required to be configured with trimming codes of “011” and “101”, respectively, for achieving successful data read during normal operations; adjusting the reference current level in response to the trimming codes of “011” and “101” allows the reference current levels of the memory devices within the “A” and “C” computers to be in the region “S2”, respectively.
For the “A” computer, however, the appropriate trimming code is not successfully obtained from the memory array, because the reference current level configured in response to the default trimming code is lower than the allowable reference current, out of the region “S1”. The memory device within the “A” computer improperly identifies the three data bits of the trimming code stored in the memory array as logic “1”, that is, improperly identifies the trimming code as “111”, and configures the reference current setting unit with a wrong trimming code of “111”. This results in that the reference current setting unit provides the sense amplifiers with reference currents of an inappropriate current level “IA01”, as denoted by an arrow “A11”.
Correspondingly, for the “C” computer, the appropriate trimming code is not successfully obtained from the memory array, because the reference current level configured in response to the default trimming code is higher than the allowable reference current, out of the region “S1”. The memory device within the “C” computer improperly identifies the three data bits of the trimming code stored in the memory array as logic “0”, that is, identifies the trimming code as “000” (which is identical to the default trimming code), and configures the reference current setting unit with a wrong trimming code of “000”. This results in that the reference current setting unit provides the sense amplifiers with reference currents of an inappropriate current level “IC1” (identical to the current level “IC01”), as denoted by an arrow “C11”.